package com.tiger.project.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.tiger.common.annotation.Excel;
import com.tiger.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;


/**
 * 【资产列表】对象 asset
 *
 * @author standard
 * @date 2022-09-15
 */
@Data
@EqualsAndHashCode(callSuper = false)
@ApiModel(value = "asset对象", description = "【资产列表】内容")
public class Asset extends BaseEntity {
private static final long serialVersionUID = 1L;

        /** ID */
        private Long id;

        /** 资产编号 */
        @Excel(name = "资产编号")
        @ApiModelProperty(value = "资产编号")
        private String assetNo;

        /** 资产名称 */
        @Excel(name = "资产名称")
        @ApiModelProperty(value = "资产名称")
        private String name;

        /** 资产类别 1-房产，2-地产 */
        @Excel(name = "资产类别 1-房产，2-地产")
        @ApiModelProperty(value = "资产类别 1-房产，2-地产")
        private Integer category;

        /**  资产类型  1-住宅，2-非住宅，3-商业，4-商业服务，5-服务，6-办公，7-工业，8-商办，9-国有，10-出让，11-出让/其他，12-划拨，13-工业用地，14-商办/住宅用地，16-人防，17-厂房，18-其他，0-未注明 */
        @Excel(name = " 资产类型  1-住宅，2-非住宅，3-商业，4-商业服务，5-服务，6-办公，7-工业，8-商办，9-国有，10-出让，11-出让/其他，12-划拨，13-工业用地，14-商办/住宅用地，16-人防，17-厂房，18-其他，0-未注明")
        @ApiModelProperty(value = " 资产类型  1-住宅，2-非住宅，3-商业，4-商业服务，5-服务，6-办公，7-工业，8-商办，9-国有，10-出让，11-出让/其他，12-划拨，13-工业用地，14-商办/住宅用地，16-人防，17-厂房，18-其他，0-未注明")
        private Long type;

        /** 资产地区  1-崇川区，2-通州区，3-海门区 4-开发区 */
        @Excel(name = "资产地区  1-崇川区，2-通州区，3-海门区 4-开发区")
        @ApiModelProperty(value = "资产地区  1-崇川区，2-通州区，3-海门区 4-开发区")
        private Long region;

        /** 详细地址 */
        @Excel(name = "详细地址")
        @ApiModelProperty(value = "详细地址")
        private String address;

        /** 所属片区  1-东区，2-中区，3-西区，4-东西区，5-无 6-城供 7-大禾*/
        @Excel(name = "所属片区  1-东区，2-中区，3-西区，4-东西区，5-无 6-城供 7-大禾")
        @ApiModelProperty(value = "所属片区  1-东区，2-中区，3-西区，4-东西区，5-无 6-城供 7-大禾")
        private Long area;

        /** 资产分类  1-托管，2-自有，3-门店，4-非持，5-授权 */
        @Excel(name = "资产分类  1-托管，2-自有，3-门店，4-非持，5-授权")
        @ApiModelProperty(value = "资产分类  1-托管，2-自有，3-门店，4-非持，5-授权")
        private Long classification;

        /**  管理状态  1-管理中，2-不再管理 */
        @Excel(name = " 管理状态  1-管理中，2-不再管理")
        @ApiModelProperty(value = " 管理状态  1-管理中，2-不再管理")
        private Long managementStatus;

        /** 1-可租赁，2-不可租赁 */
        @Excel(name = "1-可租赁，2-不可租赁")
        @ApiModelProperty(value = "1-可租赁，2-不可租赁")
        private Long leaseStatus;

        /** 经纬度 */
        @Excel(name = "经纬度")
        @ApiModelProperty(value = "经纬度")
        private String longitudeLatitude;

        /** 资产图片 */
        @Excel(name = "资产图片")
        @ApiModelProperty(value = "资产图片")
        private String picture;

        /**  资产用途  1-住宅，2-非住宅，3-商业，4-商业服务，5-服务，6-办公，7-工业，8-商办，9-国有，10-出让，11-出让/其他，12-划拨，13-工业用地，14-商办/住宅用地，15-住宅，16-人防，17-厂房，18-其他，0-未注明  19-自用*/
        @Excel(name = " 资产用途  1-住宅，2-非住宅，3-商业，4-商业服务，5-服务，6-办公，7-工业，8-商办，9-国有，10-出让，11-出让/其他，12-划拨，13-工业用地，14-商办/住宅用地，15-住宅，16-人防，17-厂房，18-其他，0-未注明 19-自用")
        @ApiModelProperty(value = " 资产用途  1-住宅，2-非住宅，3-商业，4-商业服务，5-服务，6-办公，7-工业，8-商办，9-国有，10-出让，11-出让/其他，12-划拨，13-工业用地，14-商办/住宅用地，15-住宅，16-人防，17-厂房，18-其他，0-未注明 19-自用")
        private Integer purpose;

        /** 房屋推荐  1-是，2-否 */
        @Excel(name = "房屋推荐  1-是，2-否")
        @ApiModelProperty(value = "房屋推荐  1-是，2-否")
        private Integer isRecommended;

        /** 是否有产权  1-是，2-否   */
        @Excel(name = "是否有产权  1-是，2-否  ")
        @ApiModelProperty(value = "是否有产权  1-是，2-否  ")
        private Integer hasPropertyRight;

        /** 产权所有人 */
        @Excel(name = "产权所有人")
        @ApiModelProperty(value = "产权所有人")
        private Long propertyOwnerId;

        @ApiModelProperty(value = "产权所有人姓名")
        private String propertyOwnerName;

        /** 1-有房有土，2-有房无土，3-无房有土，4-无房无土，5-其他类型 */
        @Excel(name = "1-有房有土，2-有房无土，3-无房有土，4-无房无土，5-其他类型")
        @ApiModelProperty(value = "1-有房有土，2-有房无土，3-无房有土，4-无房无土，5-其他类型")
        private Long propertyAttribute;

        /** 产权面积 */
        @Excel(name = "产权面积")
        @ApiModelProperty(value = "产权面积")
        private BigDecimal propertyArea;

        @ApiModelProperty(value = "资产面积查询左")
        private String beginArea;

        @ApiModelProperty(value = "资产面积查询右")
        private String endArea;

        /** 授权地址 */
        @Excel(name = "授权地址")
        @ApiModelProperty(value = "授权地址")
        private String authorizedAddress;

        @ApiModelProperty(value = "授权期限")
        private String authorizationPeriod;

        /** 授权名称 */
        @Excel(name = "授权名称")
        @ApiModelProperty(value = "授权名称")
        private String authorizationName;

        /** 产权证号 */
        @Excel(name = "产权证号")
        @ApiModelProperty(value = "产权证号")
        private String propertyCertification;

        /** 财务编号 */
        @Excel(name = "财务编号")
        @ApiModelProperty(value = "财务编号")
        private String financialNumber;

        /** 经营主体 */
        @Excel(name = "经营主体")
        @ApiModelProperty(value = "经营主体")
        private String businessEntity;

        /** 1-平台招租，2-非平台招租，3-协议招租 */
        @Excel(name = "1-平台招租，2-非平台招租，3-协议招租")
        @ApiModelProperty(value = "1-平台招租，2-非平台招租，3-协议招租")
        private Long rentingMethod;

        /** 账面价值id */
        @Excel(name = "账面价值id")
        @ApiModelProperty(value = "账面价值id")
        private Long bookValueId;

        /** 1-是，0-否 */
        @Excel(name = "1-是，0-否")
        @ApiModelProperty(value = "删除标志 1-是，0-否")
        private Long isDeleted;

        /** $column.columnComment */
        @JsonFormat(pattern = "yyyy-MM-dd")
        @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd")
        @ApiModelProperty(value = "创建时间")
        private Date createdAt;


        @JsonFormat(pattern = "yyyy-MM-dd")
        @Excel(name = "更新时间", width = 30, dateFormat = "yyyy-MM-dd")
        @ApiModelProperty(value = "更新时间")
        private Date updatedAt;


        /**  1-使用中，0-未使用 */
        @Excel(name = " 1-使用中，0-未使用")
        @ApiModelProperty(value = " 1-使用中，0-未使用")
        private Long isUsed;


        @ApiModelProperty(value = "承租方 id")
        private Long tenantryId;


        @ApiModelProperty(value = "承租方姓名")
        private String tenantryName;


        @ApiModelProperty(value = "承租方联系方式")
        private String tenantryPhone;

        /** 创建人 */
        @Excel(name = "创建人")
        @ApiModelProperty(value = "创建人")
        private Long createById;

        /** 创建人名称 */
        @Excel(name = "创建人名称")
        @ApiModelProperty(value = "创建人名称")
        private String createByName;

        /** 更新人 */
        @Excel(name = "更新人")
        @ApiModelProperty(value = "更新人")
        private Long updateById;

        /** 更新人名称 */
        @Excel(name = "更新人名称")
        @ApiModelProperty(value = "更新人名称")
        private String updateByName;

        /** 租户id(0--平台用户 非0--正常租户) */
        @Excel(name = "租户id(0--平台用户 非0--正常租户)")
        @ApiModelProperty(value = "租户id(0--平台用户 非0--正常租户)")
        private Long tenantId;

        @ApiModelProperty(value = "公司id")
        private Long companyId;

        @ApiModelProperty(value = "附件集合")
        private List<AssetEnclosure> enclosureList = new ArrayList<>();

        @ApiModelProperty(value = "资产变更记录集合")
        private List<AssetHistory> historyList = new ArrayList<>();

        @ApiModelProperty(value = "面积划分集合")
        private List<AssetRegionalDivision> regionalDivisionList = new ArrayList<>();

        @ApiModelProperty(value = "巡查记录集合")
        private List<PatrolRecord> patrolRecordList = new ArrayList<>();

        @ApiModelProperty(value = "维修记录集合")
        private List<MaintenanceApply> maintenanceApplyList = new ArrayList<>();

        @ApiModelProperty(value = "承租人员信息")
        private List<ContractSponsor> contractSponsorList = new ArrayList<>();


        @ApiModelProperty(value = "是否发布 1-否 2-是")
        private String isRelease;

        @ApiModelProperty(value = "1-升序  2-降序")
        private Long rank;


        private Long dueStatus;


}
